#include<stdio.h>
#include<signal.h>
#include<unistd.h>

void printsigset(sigset_t *set)
{
		int i = 0;
		for(;i<32;i++){
			if(sigismember(set,i))//判断指定信号是否在目标集合中
					putchar('1');
			else
					putchar('0');
		}
		printf("\n");
}

int main()
{
		sigset_t s,p;       //1.定义信号集对象
//		sigemptyset(&s); //2.清空初始化
//		sigaddset(&s,SIGINT);//3.添加ctrl+c
		sigfillset(&s);//2.full初始化
		sigdelset(&s,SIGINT);//3.删除ctrl+c
		sigprocmask(SIG_BLOCK,&s,NULL);//4.设置阻塞信号集，阻塞SIGINT信号
		while(1){
			sigpending(&p);//5.读取当前进程的未决信号集,通过参数传出
			printsigset(&p);
			sleep(1);
		}

		return 0;
}
